<template>
  <div class="about">
    <div id="my-container" class="my-container"></div>
  </div>
</template>
<script>
import { Checkboxland } from "checkboxland";
export default {
  name: "about",
  data() {
    return {
      cbl: "",
      checkBoxData: [],
      thunder: [],
    };
  },
  mounted() {
    //设置地图
    this.cbl = new Checkboxland({
      dimensions: "10x10",
      selector: "#my-container",
    });
    this.thunder = this.cbl.getData(); //设置地雷地图
    this.cbl.onClick(this.eventHandler); //checkbox点击事件
    this.setThunder(); //埋雷
  },
  methods: {
    //埋雷
    setThunder() {
      //一行一个
      for (let i = 0; i < 10; i++) {
        // let x = this.getRandomInt(0, 9);
        let y = this.getRandomInt(0, 9);
        this.thunder[i][y] = 1;
      }
    },
    //获取全部数据
    getData() {
      this.checkBoxData = this.cbl.getData();
    },
    eventHandler({ x, y }) {
      if (this.thunder[x][y] === 1) {
        alert("踩雷了！");
        return;
      }
      this.getData();
      //设置复选框的值
      if (this.checkBoxData[x][y] === 0) {
        //如果未选中
        this.cbl.setCheckboxValue(x, y, 1);
      } else {
        //如果已选中
        this.cbl.setCheckboxValue(x, y, 0);
      }
    },
    // 生成1-10的整数
    // Math.floor(); 向下舍入
    // console.log(Math.floor(3.8)); //向下舍入，小数点省略了 结果：3
    // Math.random()  random() 方法可返回介于 0（包含） ~ 1（不包含） 之间的一个随机数。
    // Math.floor((Math.random()*10)+1);取得介于 1 到 10 之间的一个随机数：
    // Math.floor((Math.random()*100)+1);取得介于 1 到 100 之间的一个随机数：
    getRandomInt(min, max) {
      // 以下函数返回 min（包含）～ max（包含）之间的数字：
      const random = Math.floor(Math.random() * (max - min + 1)) + min;
      //  函数返回 min（包含）～ max（不包含）之间的数字
      //  this.data = Math.floor(Math.random() * (max - min) ) + min;
      return random;
    },
  },
};
</script>
<style scoped></style>
